package com.skt.domain.DTO.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 新增服装分类请求体
 */
@Data
public class CreateCategoryRequest {

    /**
     * 分类名称，1~50 个字符
     */
    @NotBlank(message = "分类名称不能为空")
    @Size(min = 1, max = 50, message = "分类名称长度必须在 1~50 个字符之间")
    @Schema(description = "分类名称", example = "汉服", requiredMode = Schema.RequiredMode.REQUIRED)
    private String name;

    /**
     * 父分类ID：0 表示顶级分类；>0 表示子分类，需确保父分类存在且未被删除
     */
    @NotNull(message = "父分类ID不能为空")
    @Schema(description = "父分类ID，0 表示顶级分类", example = "0", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long parentId = 0L;

    /**
     * 排序值，非负整数，默认为 0
     */
    @NotNull(message = "排序值不能为空")
    @Schema(description = "排序值，越小越靠前", example = "10", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer sortOrder = 0;
}